home *** CD-ROM | disk | FTP | other *** search
- /******************************************************************************
- *
- * NSSDC/CDF Variable data formatting.
- *
- * Version 2.0, 27-Feb-92, ST Systems (STX)
- *
- * Modification history:
- *
- * V1.0 24-Jan-91, D Grogan/H Leckner Original version (for CDF V2.0).
- * V1.1 25-Mar-91, J Love Cast malloc calls.
- * V1.2 27-Feb-92, J Love Modified for IBM-PC port. CDF V2.2.
- * H Leckner
- *
- ******************************************************************************/
-
- #include <stdlib.h>
-
- /*
- * VAR_FORM.C
- */
- #define VAR_FORM 1
- #include "wfl.h"
- #include "cdfdist.h"
- #include "cdfbrow.h"
- /*
- * VAR_FORM_DEF.INC
- */
-
-
- #define VAR_DATATYPE_ELEMENT 4
- #define DEC_DATATYPE_ELEMENT 19
- #define REAL8 1
- #define REAL4 2
- #define INT4 3
- #define INT2 4
- #define BYTE 5
-
- #define CP (**c)
-
- void VAR_FORM_init ( c )
-
- struct var_form_struct **c;
-
- {
-
- long int i;
- /*long int *ptr;*/
- long int element_num;
-
- *c = (struct var_form_struct *)
- malloc(sizeof(struct var_form_struct)); /* V1.1 */
-
- set_pointer ((long *) &CP.window, (long) &var_form_inter);
-
- WFL_create_window ((struct window_struct *) CP.window);
-
- CP.num_elements = VAR_FORM_MAX_ELEMENTS;
-
- for (i = 0 ; i < CP.num_elements ; i++)
- {
- set_pointer ((long *) &(CP.elements)[i], (long) &var_form[i]);
- }
- /* Initialize popup form and and connect to main form */
-
-
- element_num = VAR_DATATYPE_ELEMENT;
- DATATYPE_init ((long int *)CP.window, (long int *)CP.elements,
- element_num);
-
- }
-
- void VAR_FORM_load_form(var_ptr)
-
- struct var_form_struct *var_ptr;
- {
-
- WFL_begin_screen_update ();
- WFL_draw_window ((struct window_struct *) (*var_ptr).window);
- WFL_load_form ((struct form_element_struct **) (*var_ptr).elements,
- (*var_ptr).num_elements,
- (struct window_struct *) (*var_ptr).window);
- WFL_end_screen_update ();
- }
-
- void VAR_FORM_display_element( data, data_type, element_num, var_ptr)
-
- /* <dan> add later ?? , video_type)
- */
-
- long int *data;
- int data_type;
- int element_num;
- struct var_form_struct *var_ptr;
-
- {
- int video_type = NORMAL;
- WFL_display_form_data((struct window_struct *)(*var_ptr).window,
- (struct form_element_struct **)(*var_ptr).elements,
- (int *) data, data_type, element_num, video_type);
- }
- void VAR_FORM_read_element( data, data_type, element_num, var_ptr,
- rcode)
-
- long int *data;
- int data_type;
- int element_num;
- struct var_form_struct *var_ptr;
- int *rcode;
-
- {
- WFL_read_element((struct window_struct *)(*var_ptr).window,
- (struct form_element_struct **) (*var_ptr).elements,
- (int *) data, data_type, element_num, rcode);
- }
- void VAR_FORM_get_nbytes( data, var_ptr, element_num, num_bytes)
-
- char data[];
- struct var_form_struct *var_ptr;
- int element_num;
- int *num_bytes;
-
- {
- long int type;
- /*int rcode;*/
- DATATYPE_num_bytes (data, (long *)(*var_ptr).elements,
- element_num, &type);
- switch (type)
- {
- case REAL8:
- *num_bytes = 8;
- break;
- case REAL4:
- case INT4:
- *num_bytes = 4;
- break;
- case INT2:
- *num_bytes = 2;
- break;
- case BYTE:
- *num_bytes = 1;
- break;
- default:
- *num_bytes = 0;
- break;
- }
- }
-
-
-
- void VAR_FORM_erase_form(var_ptr)
-
- struct var_form_struct *var_ptr;
- {
-
- WFL_erase_window ((struct window_struct *) (*var_ptr).window );
- }
-
-